/*
 * Torre.java
 *
 * Created on 18 de julio de 2007, 11:54 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package ajedrezLogica;
import java.util.*;
import javax.swing.*;

/**
 *
 * @author Billy
 */
public class Torre extends Pieza{
    
    /** Creates a new instance of Torre */
    public Torre(String nombre, String posicion, JLabel laFigura) {
        super(nombre, posicion, laFigura);        
        System.out.println("::Estoy sobre la Torre !!!:: ");        
    }

    public Torre(){
        super("","",null);
    }
    
    public List<String> CalcularMovimientos(manejadorPiezas adminPiezas){
        char f , c;        
        movimientosposibles = new ArrayList<String>();              
        for(int i=1; i<=4;i++){
            
            f = posicion.charAt(0);        
            c = posicion.charAt(1);

            switch(i){
                case 1: /*Posicion 1 (Arriba)*/ 
                        while( c <'8'){
                            ++c;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println(" 1 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                if(adminPiezas.getColorPieza(aString(f,c))!=tipocolor){
                                    movimientosposibles.add(aString(f,c)); 
                                    break;
                                }
                                else break;
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                
                        }
                        break;
                        
                case 2: /*Posicion 2 (Abajo)*/ 
                        while( c >'1'){
                            --c;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("2 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                if(adminPiezas.getColorPieza(aString(f,c))!=tipocolor){
                                    movimientosposibles.add(aString(f,c)); 
                                    break;
                                }
                                else break;                                
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                                            
                        }                    
                        break;
                        
                case 3: /*Posicion 3 (Izquierda)*/ 
                        while(f >'a'){
                            --f;   
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("3 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                if(adminPiezas.getColorPieza(aString(f,c))!=tipocolor){
                                    movimientosposibles.add(aString(f,c)); 
                                    break;
                                }
                                else break;                                
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                                            
                        }                    
                        break;
                        
                case 4: /*Posicion 4 (Derecha)*/ 
                        while(f <'h'){
                            ++f;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("4 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                if(adminPiezas.getColorPieza(aString(f,c))!=tipocolor){
                                    movimientosposibles.add(aString(f,c)); 
                                    break;
                                }
                                else break;                                
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                                            
                        }                    
                        break;                                                
            } //switch                                                                                   
        }
       return movimientosposibles;          
    }
    
}
